#pragma once

#include <linux/kern_levels.h>

int _printk(const char *fmt, ...);

#define printk _printk

#define pr_todo() \
    printk("TODO: %s:%d\n", __func__, __LINE__)

#define printk_deferred_once(fmt, ...)

#define pr_debug(fmt, ...)

/**
 * pr_warn - Print a warning-level message
 * @fmt: format string
 * @...: arguments for the format string
 *
 * This macro expands to a printk with KERN_WARNING loglevel. It uses pr_fmt()
 * to generate the format string.
 */
#define pr_warn(fmt, ...) \
	printk(KERN_WARNING fmt, ##__VA_ARGS__)

#define pr_info(fmt, ...) \
    printk(KERN_INFO fmt, ##__VA_ARGS__)

#define pr_err(fmt, ...) \
    printk(KERN_ERR fmt, ##__VA_ARGS__)
